CDMA or spread spectrum communications have been in existence since the days of World War II. Early applications were predominantly military oriented. However, today there has been an increasing interest in using spread spectrum systems in commercial applications. Some examples include digital cellular radio, land mobile radio, and indoor and outdoor personal communication networks.
The cellular telephone industry has made phenomenal strides in commercial operations in the United States as well as the rest of the world. Growth in major metropolitan areas has far exceeded expectations and is outstripping system capacity. If this trend continues, the effects of rapid growth will soon reach even the smallest markets. Innovative solutions are required to meet these increasing capacity needs as well as maintain high quality service and avoid rising prices.
Throughout the world, one important step in cellular systems is to change from analog to digital transmission. Equally important is the choice of an effective digital transmission scheme for implementing the next generation of cellular technology. Furthermore, it is widely believed that the first generation of Personal Communication Networks (PCNs), employing low cost, pocket-size, cordless telephones that can be carried comfortably and used to make or receive calls in the home, office, street, car, etc., will be provided by cellular carriers using the next generation digital cellular system infrastructure and the cellular frequencies. The key feature demanded in these new systems is increased traffic capacity.
Currently, channel access is achieved using Frequency Division Multiple Access (FDMA) and Time Division Multiple Access (TDMA) methods. In FDMA, a communication channel is a single radio frequency band into which a signal's transmission power is concentrated. Interference with adjacent channels is limited by the use of band pass filters which only pass signal energy within the specified frequency band. Thus, with each channel being assigned a different frequency, system capacity is limited by the available frequencies as well as by limitations imposed by channel reuse.
In TDMA systems, a channel consists of a time slot in a periodic train of time intervals over the same frequency. Each period of time slots is called a frame. A given signal's energy is confined to one of these time slots. Adjacent channel interference is limited by the use of a time gate or other synchronization element that only passes signal energy received at the proper time. Thus, the problem of interference from different relative signal strength levels is reduced.
Capacity in a TDMA system is increased by compressing the transmission signal into a shorter time slot. As a result, the information must be transmitted at a correspondingly faster burst rate which increases the amount of occupied spectrum proportionally.
With FDMA or TDMA systems or hybrid FDMA/TDMA systems, the goal is to insure that two potentially interfering signals do not occupy the same frequency at the same time. In contrast, Code Division Multiple Access (CDMA) allows signals to overlap in both time and frequency. Thus, all CDMA signals share the same frequency spectrum. In the frequency or the time domain, the multiple access signals appear to be on top of each other.
There are a number of advantages associated with CDMA communication techniques. The capacity limits of CDMA-based cellular systems are projected to be up to twenty times that of existing analog technology as a result of the properties of a wide band CDMA system, such as improved coding gain/modulation density, voice activity gating, sectorization and reuse of the same spectrum in every cell. CDMA transmission of voice by a high bit rate decoder insures superior, realistic voice quality. CDMA also provides for variable data rates allowing many different grades of voice quality to be offered. The scrambled signal format of CDMA completely eliminates cross talk and makes it very difficult and costly to eavesdrop or track calls, insuring greater privacy for callers and greater immunity from air time fraud.
In principle, in a CDMA system the informational data stream to be transmitted is impressed upon a much higher rate data stream known as a signature sequence. Typically, the signature sequence data are binary, providing a bit stream. One way to generate this signature sequence is with a pseudo-noise (PN) process that appears random, but can be replicated by an authorized receiver. The informational data stream and the high bit rate signature sequence stream are combined by multiplying the two bit streams together, assuming the binary values of the two bit streams are represented by +1 or -1. This combination of the higher bit rate signal with the lower bit rate data stream is called coding or spreading the informational data stream signal. Each informational data stream or channel is allocated a unique spreading code.
A plurality of coded information signals modulate a radio frequency carrier, for example by quadrature phase shift keying (QPSK), and are jointly received as a composite signal at a receiver. Each of the coded signals overlaps all of the other coded signals, as well as noise-related signals, in both frequency and time. If the receiver is authorized then the composite signal is correlated with one of the unique codes, and the corresponding information signal can be isolated and decoded.
One CDMA technique, called "traditional CDMA with direct spreading", uses a signature sequence to represent one bit of information. Receiving the transmitted sequence or its complement (the transmitted binary sequence values) indicates whether the information bit is a "0" or "1". The signature sequence usually comprises N bits, and each bit is called a "chip". The entire N-chip sequence, or its complement, is referred to as a transmitted symbol. The receiver correlates the received signal with the known signature sequence of its own signature sequence generator to produce a normalized value ranging from -1 to +1. When a large positive correlation results, a "0" is detected; when a large negative correlation results, a "1" is detected.
Another CDMA technique, called "enhanced CDMA with direct spreading" allows each transmitted sequence to represent more than one bit of information. A set of code words, typically orthogonal code words or bi-orthogonal code words, is used to code a group of information bits into a much longer code sequence or code symbol. A signature sequence or scramble mask is modulo-2 added to the binary code sequence before transmission. At the receiver, the known scramble mask is used to descramble the received signal, which is then correlated to all possible code words. The code word with the largest correlation value indicates which code word was most likely sent, indicating which information bits were most likely sent. One common orthogonal code is the Walsh-Hadamard (WH) code.
In both traditional and enhanced CDMA, the "information bits" referred to above can also be coded bits, where the code used is a block or convolutional code. One or more information bits can form a data symbol. Also, the signature sequence or scramble mask can be much longer than a single code sequence, in which case a subsequence of the signature sequence or scramble mask is added to the code sequence.
In many radio communication systems, the received signal includes two components, an I (in-phase) component and a Q (quadrature) component. This results because the transmitted signal has two components, and/or the intervening channel or lack of coherent carrier reference causes the transmitted signal to be divided into I and Q components. In a typical receiver using digital signal processing, the received I and Q component signals are sampled every T.sub.c seconds, where T.sub.c is the duration of a chip, and stored.
In mobile communication systems, signals transmitted between base and mobile stations typically suffer from echo distortion or time dispersion, caused by, for example, signal reflections from large buildings or nearby mountain ranges. Multipath dispersion occurs when a signal proceeds to the receiver along not one but many paths so that the receiver hears many echoes having different and randomly varying delays and amplitudes. Thus, when multipath time dispersion is present in a CDMA system, the receiver receives a composite signal of multiple versions of the transmitted symbol that have propagated along different paths (referred to as "rays") having relative time delays of less than one symbol period. Each distinguishable "ray" has a certain relative time of arrival k T.sub.c seconds and spans N of the I and Q chip samples, since each signal image is an N-chip sequence. As a result of multipath time dispersion, the correlator outputs several smaller spikes rather than one large spike. Each ray that is received after the symbol period (i.e., if the time delay caused by a reflection exceeds one symbol period) appears as an uncorrelated interfering signal that reduces the total capacity of the communication system. To optimally detect the transmitted symbols (bits), the spikes received must be combined. Typically, this is done by a RAKE receiver, which is so named because it "rakes" all the multipath contributions together.
A RAKE receiver uses a form of diversity combining to collect the signal energy from the various received signal paths, i.e., the various signal rays. Diversity provides redundant communication channels so that when some channels fade, communication is still possible over non-fading channels. A CDMA RAKE receiver combats fading by detecting the echo signals individually using a correlation method and adding them algebraically (with the same sign). Further, to avoid intersymbol interference, appropriate time delays are inserted between the respective detected echoes so that they fall into step again.
In one for of RAKE receiver, correlation values of the signature sequence with the received signals at different time delays are passed through a delay line that is tapped at expected time delays (dt), the expected time between receiving echoes. The outputs at the RAKE taps are then combined with appropriate weights. Such a receiver searches for the earliest ray by placing a tap at T.sub.o, and for a ray delayed by dt by placing a tap at T.sub.o +dt, and so forth. The RAKE tap outputs having significant energy are appropriately weighted and combined to maximize the received signal to noise and interference ratio. Thus, the total time delay of the delay line determines the amount of arrival time delay that can be searched.
A diagram of a conventional RAKE receiver using post-correlator, coherent combining of different rays is shown in FIG. 1. A received radio signal is demodulated by, for example, mixing it with cosine and sine waveforms and filtering the signal in an RF receiver 1, yielding I and Q chip samples. These chip samples are buffered by a buffer which is composed of two buffers, one for the I (in-phase) samples 2a and one for the Q (quadrature) samples 2b. The bottom of each buffer 2a and 2b contains the most recently received chip samples in time.
A multiplexer 3 receives the buffered chip samples and sends complex correlators 4a and 4b a range of I chip samples and the same range of Q chip samples. The range selected includes N samples corresponding to the N-chip sequence arriving at a certain time. For example, if the I and Q buffers 2a and 2b, respectively, contain 159 chip samples (0-158), and N is 128, then the multiplexer 3 would send chip samples i through (i+127) from the I buffer 2a, and chip samples i through (i+127) from the Q buffer 2b to correlator 4a, where i is the discrete time index of the signal rays from when the buffers were first filled.
A complex correlation value is formed by each complex correlator 4a and 4b which correlate two sets of signal samples, I and Q, to the known signature sequence (code). Different complex correlators correspond to different received sample ranges, and hence different signal rays. The multiplexer 3 can provide the received samples either serially or in parallel.
In general, a complex correlator correlates a complex input stream (I+jQ samples) to a complex known sequence, producing a complex correlation value. If the signature sequence is not complex, each complex correlator can be implemented as two scalar correlators in parallel, which is defined as a "half-complex" correlator. If the signature sequence is complex, the complex correlators correlate a complex input to a complex sequence, giving rise to "full-complex" correlators. It is to be understood that the term "complex correlator" will be used herein to refer to each of the aforementioned scenarios.
Following correlation, the complex correlation values are transmitted to multiplier 5 where they are multiplied by a complex weight referred to as a complex RAKE tap. Each RAKE tap is a complex number consisting of a real part and an imaginary part. The complex correlator 4a correlates a set of data to a known signature sequence. Typically, only the real part of the product of the complex correlation values and the RAKE tap values are sent to accumulator 6. The accumulator 6 sums the weighted correlation results for all the signal rays processed and sends the accumulated result to a threshold device 7. The threshold device 7 detects a binary "0" if the input is greater than a threshold, or a binary "1" if the input is less than the threshold.
In mathematical terms, suppose X(n)=I(n)+jQ(n) are the chip samples received by the receiver, where I(n) are the I component samples, Q(n) are the Q component samples, and n is the chip sample index corresponding to a respective discrete time. In FIG. 1, I(n) are stored in 2a and Q(n) are stored in 2b. The multiplexer 3, selects a range of I samples and a range of Q samples corresponding to the same ray. If M(k,n)=M.sub.I (k,n)+jM.sub.Q (k,n) is the multiplexer output for ray k, giving N samples (n=0,N-1), then M(k,n)=X(n+k) and M.sub.I (k,n)=I(n+k) and M.sub.Q (k,n)=Q(n+k).
The complex correlator, 4a, correlates the range of data samples from the multiplexer 3 to a known code sequence. Consider data samples X(k), X(k+1), . . . , X(k+N-1), which are discrete time samples of the received data. If the receiver is trying to detect a code sequence C(0), C(1), . . . C(N-1), which consists of N values (usually .+-.1 values), the correlator correlates some set of N data values with the N code sequence values as follows: ##EQU1## where the index k indicates where to start in the data sequence. This corresponds to a relative time of arrival of the signal. Different arrival times correspond to different signal rays. Thus, ray k corresponds to a range of data values needed: {X(k),X(k+1), . . . ,X(k+N-1)}. If N is large, then rays k and k+1 correspond to ranges which substantially overlap. The computation of R(k) can be performed by accessing the input data range in parallel or serially. FIG. 2 is representative of a parallel approach. A data buffer 53 stores consecutive time samples of the received signal, X(n). Multiplexer 54 selects a range of N data values, {X(k),X(k+1), . . . , X(k+N-1)}, which are sent to the correlator 55. A multiplier 56 which corresponds to each input to the correlator, multiplies each input value with a corresponding coding sequence value. The products are summed together in adder 57 to form the correlation value R(k).
FIG. 3 is representative of accessing the input range serially to compute R(k). Input buffer 58 stores the received data samples. The buffer may be only one sample long, since only one sample at a time is correlated. If the buffer is more than one sample long, then a multiplexer 59 is needed to select a particular sample X(k+i), where i is determined by control processor 60. The value selected is sent to correlator 61. The correlator 61 first computes the product of the input X(k+i) with one element of the code sequence, C(i), using multiplier 62. This product is then added to an accumulator 64 which stores past products. Accumulator 64 is originally set to zero, then i is stepped from 0 to N-1, allowing the accumulation of N products. After N products have been accumulated, they are output from the correlator giving correlation value R(k). Whether performing the correlation in parallel or serially, each data value X(n) consists of b bits. The bits can be accessed and used all at once (parallel computation) or one at a time (bit serial approach).
Regardless of the correlation approach used, the correlator 4a for ray k correlates the multiplexer output M(k,n) to the real code sequence C(n), producing a complex correlation value R(k)=R.sub.I (k)+jR.sub.Q (k) where: ##EQU2## The RAKE combiner uses RAKE taps W(k)=W.sub.I (k)+jW.sub.Q (k) to multiply the correlation values and accumulate the result into the decision statistic, Z where: ##EQU3## The quantity Z is then thresholded in the threshold device 7 to determine whether a "0" or "1" was sent.
The conventional RAKE receiver is designed based on the assumption that for a given signal ray, there is signal energy in both the I and Q channels. In practice, this is not always the case. If all or most of the energy for a given signal ray is on the I channel then correlating both the I and Q channel is inefficient. This results in inefficient use of processing time, which might be better used elsewhere in the receiver. For a required level of performance, the conventional RAKE receiver requires more processing time than necessary. If processing time is limited, then a loss in utilized received signal power results, giving a loss in performance, i.e., increased detection errors.
The following example shows how the conventional RAKE receiver functions under two different scenarios. Suppose there are four signal rays, one line-of-sight ray and three echoes, which are combined with the complex weights (referred to as RAKE taps) given in TABLE 1.
TABLE 1 ______________________________________ Rake Receiver Example angle I RAKE Q RAKE signal ray amplitude (deg) tap tap ______________________________________ 0 0.625 70 0.214 0.587 1 0.5 30 0.433 0.250 2 0.4677 40 0.358 0.301 3 0.375 10 0.369 0.065 ______________________________________
The amplitude and angle represent the polar form of the RAKE taps, and the I and Q taps provide the Cartesian form used to multiply I and Q respectively. The energy in each signal ray is given by the amplitude squared or by the sum of the I RAKE tap squared and Q RAKE tap squared. The amplitudes have been normalized so that the total signal power (sum of the amplitudes squared) is unity.
In the first scenario, suppose the RAKE receiver is limited to two RAKE taps, which would be used to combine the two strongest rays, rays 0 and 1. The energy in rays 2 and 3 would not be used in the detection process. The total signal power RAKE'd in would be 0.625.sup.2 +0.5.sup.2 =0.214.sup.2 +0.587.sup.2 +0.433.sup.2 +0.250.sup.2 =0.64 or 64% of the total signal power. An objective of the present invention is to increase the signal power used in the detection process, resulting in an increase in system performance.
In a second scenario, assume that the RAKE receiver is required to provide a certain performance level, which corresponds to RAKing in a certain percentage level of the signal energy, for example 75%, during detection. With a conventional RAKE receiver, it is necessary to process three of the four rays. This requires a certain amount of computation, which corresponds to either a certain amount of hardware (three complex correlators) or a certain amount of processing time (one complex correlator used three times). Another objective of the present invention is to achieve the same system performance level with less computation, which corresponds to either less hardware or less processing time which is later discussed herein.